import jsonpath
import json


def ext_json(resp,path):
    """
    提取接口返回值，
    数据必须是dict或者可转换为dict的str格式。
    :param resp:json格式的数据
                resp = {"a":1,"b":2,"c":{"d":4,"e":5,"f":6}}
                exp = '$.c.d'
                print = 4
    :param path:取值路径 格式：'$.路径'
    :return:list
    """
    match issubclass(type(resp), dict):
        case True:
            ext = jsonpath.jsonpath(resp, path)
            if ext:
                return ext
            else:
                return print(f'检查参数:\n{path}\n取值路径是否正确')
        case False:
            try:
                ext = jsonpath.jsonpath(json.loads(resp), path)
                if ext:
                    return ext
                else:
                    return print(f'检查参数:\n{resp}\n是否可以转为json\n{path}\n取值路径是否正确')
            except TypeError as e:
                return print(e)
    return None
